import App from './App'
import messages from './locale/index'
import "./style.css";
import { createPinia } from 'pinia'
import { useCommonStore } from "@/stores/useCommonStore";
import myTabbar from '@/components/myTabbar.vue' // 导入你的组件
uni.$baseUrl = 'http://192.168.0.98:9998'//  设置全局的请求地址
// uni.$baseUrl = 'http://192.168.0.223:8080'//  测试用

const pinia = createPinia()
//映射表
const localeMap = {
  'zh-Hans': 'cn',
  'en': 'en'
};
const systemLocale = uni.getLocale(); // 可能返回 'zh', 'en' 等
const customLocale = localeMap[systemLocale] || systemLocale;
// 从本地存储中获取保存的语言
const savedLanguage = uni.getStorageSync('lang') || customLocale;

let i18nConfig = {
  locale: savedLanguage, // uni.getLocale() 识别本地语言
  messages
}

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
const commonStore = useCommonStore(pinia);
i18nConfig.locale = commonStore.language || savedLanguage;
const i18n = new VueI18n(i18nConfig)

// 全局注册组件（Vue2方式）
Vue.component('myTabbar', myTabbar) // 全局注册组件

Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
  i18n,
  ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
import { createI18n } from 'vue-i18n'
const i18n = createI18n(i18nConfig)
import uviewPlus from '@/uni_modules/uview-plus'

export function createApp() {
  const app = createSSRApp(App)
  app.use(pinia)
  const commonStore = useCommonStore(pinia);
  // 如果 store 中有语言设置，优先使用，否则使用本地存储的语言
  i18nConfig.locale = commonStore.language || savedLanguage;
  const i18n = createI18n(i18nConfig)
  app.use(i18n)
  app.use(uviewPlus)

  // 全局注册组件（Vue3方式）
  app.component('myTabbar', myTabbar) // 全局注册组件

  return {
    app,
    i18n
  }
}
// #endif